package main

import "fmt"

//接口实例2

type Phone interface {
	Call(number int) // 更符合手机核心功能
}

type Pc interface {
	PlayMedia(media string) // 通用媒体播放功能
}

// Huawei 继承实例
type Huawei struct {
	Model string // 模型
	Size  int    // 尺寸
}

func (h Huawei) Call(number int) {
	fmt.Printf("华为设备：%s 尺寸：%d\n", h.Model, number)
}

func (h Huawei) PlayMedia(media string) {
	fmt.Printf("华为PC设备:%s ,播放的视频：%s\n", h.Model, media)
}

type Apple struct {
	Model string // 模型
}

func (a Apple) Call(number int) {
	fmt.Printf("苹果设备：%s 尺寸：%d\n", a.Model, number)
}

func main() {
	//使用接口实例
	devcies := []Phone{Huawei{Model: "P30", Size: 5}, Apple{Model: "iPhoneX"}}
	for _, dev := range devcies {
		dev.Call(1231)
	}
	pc := Huawei{Model: "鸿蒙电脑", Size: 5}
	pc.PlayMedia("Avatar.mov")

}
